// pages/details/details.js
var time= require("../../utils/util.js");
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    height:'', //查询用户手机高度
    id:"",
    recruit:null,
    tempFileURL:'', //获取附件通用url
    situation:"",//招募状态
    isSubmit:false, //判断是否提交过申请  false 提交过
    submitBtnType:0, //判断显示哪个提交按钮 0可以提交 1 已提交 2 ：已结束
    startTime:'',  //开始时间
    endTime:'' ,//结束时间
    // 他的------------------------------
    imgURLs: [],
    //商品是否被收藏
    isCollect:false,  //ture 为已经收藏
    isCollect_tb:'#000', //收藏图标
    //显示面板指示点
    indicatorDots:true,
    count:5,
    //加载情况
    loadingHidden: true
  },  
  // 判断是否提交过申请
  isSubmit:function(){
    this.setData({
      isSubmit:false
    })  
    wx.cloud.callFunction({
      name:'applicant',
      data:{
        parameter:'getApplicantByUserId',
        recruitId:this.data.id
      }
    }).then(res=>{
      if(res.result.data.length==0){
        console.log('没有提交过申请',res)
        this.setData({
          isSubmit:true
        })  
      }else{
        console.log('提交过申请',res)
      }
    }).catch(err=>{
      console.log(err)
    })
  },
  // 判断底部提交按钮的类型
  submitBtnType:function(){
    console.log("执行了submitBtnType")
    if(!app.isRecruitEndTime(this.data.recruit.endTime)){
      this.setData({
        submitBtnType:2
      })
    }else{
      this.setData({
        submitBtnType:0
      })
    }
  },
  // 立即报名
  submit:function(e){
    if(wx.getStorageSync('login')){  
      // 判断是否已经报名
      // console.log(this.isSubmit())
      if(this.data.isSubmit){
        const id = e.currentTarget.dataset.id
        wx.navigateTo({
          url: '/pages/resume/resume?id='+id,
        })
      }else{
        wx.showToast({
          icon: 'none',
          title: '已经提交过申请'
        });   
      }
    }else{
      wx.showModal({
        title: '提示',
        content: '请先登录',
        success (res) {
          if (res.confirm) {
            if(app.globalData.canIUseGetUserProfile){
              app.getUserProfile()
            }else{
              app.getUserInfo()
            }
            this.isSubmit()
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
  },
  // 获取文件的通用url
  getTempFileURL:function(e){
    wx.cloud.getTempFileURL({
      fileList: [{
        fileID: e,
        maxAge: 60 * 60, // one hour 有效期
      }]
    }).then(res => {
      // get temp file URL
      this.setData({
        tempFileURL:res.fileList[0].tempFileURL
      })
      // console.log(res.fileList)
    }).catch(error => {
      // handle error
      console.log(error)
    })
  },
  //点击轮播图，放大预览,使用api，可以保存，发送给朋友
  handeleImg(e){
    //1.构造需预览的的图片数组
   const urls=this.data.recruit.imgs;
   //2.接收传递过来的图片url
   const current=e.currentTarget.dataset.url;
    wx.previewImage({
      //通过结构方法传参
      current,
      urls,
    })
  },
  //下载文件
  load: function () {
    this.setData({
      loadingHidden: false
    })
    let _that = this;
    wx.downloadFile({
      url: this.data.tempFileURL,
      success: function (res) {
  //加载后临时文件保存路径
        var filePath = res.tempFilePath;
          console.log(res);
        //页面显示加载动画
        wx.openDocument({
          filePath: filePath,
          success: function (res) {
            _that.setData({
              loadingHidden: true
            })
            console.log('打开文档成功')
          }
        }) 
      } 
    })
  },
// 判断是否收藏
isCollection:function(){
  wx.cloud.callFunction({
    name:'personal',
    data:{
      parameter:"queryCollection",
      recruitId:this.data.id
    }
  }).then(res=>{
    if(res.result.data.length==1){ //已经收藏
      this.setData({
        isCollect:true,
        isCollect_tb:'red'
      })
    }else{//没有收藏
      this.setData({
        isCollect:false,
        isCollect_tb:'#000'
      })
    }
    // console.log('查询收藏成功',res)
  }).catch(err=>{
    console.log('查询收藏失败',err)
  })
},

// 收藏
collection:function(){
  if(this.data.isCollect==false){  //点击后收藏
    wx.cloud.callFunction({
      name:'personal',
      data:{
        parameter:"addCollection",
        recruit:this.data.recruit,
        recruitId:this.data.id
      }
    }).then(res=>{
      console.log('成功收藏',res)
      wx.showToast({
        title: '成功收藏',
        icon: 'success',
        duration: 2000
      })
      this.setData({
        isCollect:true,
        isCollect_tb:'red'
      })
    }).catch(err=>{
      console.log('收藏失败',err)
    })
  }else{  //取消收藏
    wx.cloud.callFunction({
      name:'personal',
      data:{
        parameter:"deleteCollection",
        recruitId:this.data.id
      }
    }).then(res=>{
      console.log('取消收藏成功',res)
      wx.showToast({
        title: '已取消收藏',
        icon: 'error',
        duration: 2000
      })
      this.setData({
        isCollect:false,
        isCollect_tb:'#000'
      })
    }).catch(err=>{
      console.log('取消收藏失败',err)
    })
  }
},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      height:wx.getSystemInfoSync().windowHeight
    })
    wx.showLoading({
      title: '加载中',
    })
    let id= options.id
    let rotationId=options  //提交申请后回调的招募id，用来刷新页面
    this.setData({
      id:id
    })
    const indexRecruitAll = wx.getStorageSync('indexRecruitAll')
  //  判断是否有缓存
    console.log('缓存是否存在',indexRecruitAll)
    if(indexRecruitAll!=null){
       // 利用缓存加载，详情页面 
       for (let index = 0; index < indexRecruitAll.length; index++) {
        if(indexRecruitAll[index]._id==id||indexRecruitAll[index]._id==rotationId){
          this.setData({
            recruit:indexRecruitAll[index],
            startTime: time.formatTimeTwo(indexRecruitAll[index].startTime,'Y.M.D'),
            endTime: time.formatTimeTwo(indexRecruitAll[index].endTime,'Y.M.D'),
          })
          console.log('详情页面本地缓存匹配成功',indexRecruitAll[index])
          // 设置招募状态
          // console.log('招募状态',app.isRecruitEndTime(indexRecruitAll[index].endTime))
          // console.log('截至时间为',indexRecruitAll[index].endTime)
          if(app.isRecruitEndTime(indexRecruitAll[index].endTime)){
            this.setData({
              situation:'icon-underway'
            })
          }else{
            this.setData({
              situation:'icon-yijieshu'
            })
          }
          // console.log('当前图标为',this.data.situation)
          // 转化链接
          this.getTempFileURL(this.data.recruit.enclosureUrl)
          wx.hideLoading()
          break
        }
      }
      // console.log("++++++++++++++++++11111")
      // 如果存在缓存也匹配不成功则，访问数据库
      if(this.data.recruit==null){
         // 利用数据库加载
         console.log('进来了')
         wx.cloud.callFunction({
          name:'getRecruitById',
          data:{
            id:options.id
          }
        }).then(res=>{
          console.log(res)
          this.setData({
            recruit:res.result.data[0],
            startTime: time.formatTimeTwo(res.result.data[0].startTime,'Y.M.D'),
            endTime: time.formatTimeTwo(res.result.data[0].endTime,'Y.M.D'),
          })
          console.log("数据库查询招募详情信息成功",this.data.recruit)
          // 设置招募状态
          if(app.isRecruitEndTime(res.result.data[0].endTime)){
            this.setData({
              situation:'icon-underway'
            })
          }else{
            this.setData({
              situation:'icon-yijieshu'
            })
          }
           // 转化链接
          this.getTempFileURL(this.data.recruit.enclosureUrl)
          // console.log("++++++++++++++++++22222222222222")
          // console.log('222',this.data.recruit)
          this.submitBtnType()
          wx.hideLoading()
        }).catch(err=>{
          console.log(err)
          wx.hideLoading()
        })
      }
    }else{
       // 利用数据库加载
       wx.cloud.callFunction({
        name:'getRecruitById',
        data:{
          id:options.id
        }
      }).then(res=>{
        console.log(res)
        this.setData({
          recruit:res.result.data[0],
          startTime: time.formatTimeTwo(res.result.data[0].startTime,'Y.M.D'),
          endTime: time.formatTimeTwo(res.result.data[0].endTime,'Y.M.D'),
        })
        console.log("数据库查询招募详情信息成功",this.data.recruit)
        // 设置招募状态
        if(app.isRecruitEndTime(res.result.data[0].endTime)){
          this.setData({
            situation:'icon-underway'
          })
        }else{
          this.setData({
            situation:'icon-yijieshu'
          })
        }
         // 转化链接
        this.getTempFileURL(this.data.recruit.enclosureUrl)
        // console.log("++++++++++++++++++33333333333")
        // console.log('333',this.data.recruit)
        this.submitBtnType()
        wx.hideLoading()
      }).catch(err=>{
        console.log(err)
        wx.hideLoading()
      })
    }
    // console.log('99999',this.data.recruit)
    this.submitBtnType()
    this.isCollection()
    // console.log('+++=出错')
    wx.hideLoading()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },
  // 每次预览详情页面就更新足迹的缓存
  footprint:function(){
    let history = wx.getStorageSync('history');
    if(!history){
      wx.setStorageSync('history',[])
      history = wx.getStorageSync('history');
      console.log('执行了')
    }
    if(history.length>=20){
      history = history.slice(0,19)
    }
    let recruit = []
    // 判断是否存在
    let i = 0
    for (let index = 0; index < history.length; index++) {
      if(history[index]._id==this.data.recruit._id){
       i++
       history[index].createTime = Date.parse(new Date())   //获取当前时间的时间戳，用来判断预览历史是什么时候的
      //  将当前预览的放置第一位
      let tmp = history[index]
      for (let i = index; i >0; i--) {
        history[i] = history[i-1]
      }
       history[0] = tmp
       wx.setStorageSync('history',history)   //更新预览时间
       break
      }
    }
    if(i==0){
      // console.log('改变前',this.data.recruit.createTime)
      recruit.push(this.data.recruit)
      recruit[0].createTime = Date.parse(new Date())   //获取当前时间的时间戳，用来判断预览历史是什么时候的
      // console.log('改变后',recruit[0].createTime)
      recruit = recruit.concat(history)
      wx.setStorageSync('history',recruit)
    }
    console.log('当前的足迹为',wx.getStorageSync('history'))
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.footprint()
    console.log()
    this.isSubmit()
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return {
      // title: '自定义转发标题',
      path: '/pages/details/details?id='+this.data.id,
      // promise 
    }
  }
})